package com.campus_information_portal.service;

import com.campus_information_portal.entity.*;
import com.campus_information_portal.util.Message;
import com.campus_information_portal.util.Msg;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author:20155887赵开兰
 * @Description: 党建管理模块学生申请和申请处理业务接口层
 * @Date: Created in 2018/5/4 23:21
 */
@Service
public interface PartyApplyService {
    /**
     * @param ： StuApply stuApply
     * @Description :学生申请入党
     * @author 20155887 赵开兰
     * @methodName ：addApplyParty
     * @returnType ：void
     * @create 2018/5/3 16:43
     **/

    int addApplyParty(StuApply stuApply);

    /**
     * @param: int stuApplyid, int stateupdate
     * @Description: 老师同意学生入党，通过入党申请表主键id将state改为1
     * @author 20155887 赵开兰
     * @methodName: replyOfStuApplyPartyYes
     * @returnType: Message
     * @create 2018/5/3 20:50
     **/

    Message replyOfStuApplyPartyYes(int stuApplyid);

    /**
     * @Description: 老师拒绝学生入党，通过入党申请表主键id将state改为2
     * @author 20155887 赵开兰
     * @methodName: replyOfStuApplyPartyDeny
     * @param: int stuApplyid
     * @returnType: Message
     * @create 2018/5/3 21:15
     **/

    Message replyOfStuApplyPartyDeny(int stuApplyid);

    /**
     * @Description: 学生查询个人党员信息，信息显示
     * @author 20155887 赵开兰
     * @methodName: queryPartyMemberInforByParty_member_id
     * @param: int party_member_id
     * @returnType: PartyMember
     * @create 2018/5/4 22:08
     **/

    PartyMember queryPartyMemberInforByParty_member_id(int party_member_id);

    /**
     * @param ：int party_member_id
     * @Description :学生党员查询个人所在党支部基本信息
     * @author 20155887 赵开兰
     * @methodName :queryPartyInforByParty_member_id
     * @returnType ：Party
     * @create 2018/5/17 10:39
     **/

    Party queryPartyInforByParty_member_id(int party_member_id);

    /**
     * @param ：int party_member_account
     * @Description :学生党员账号，即学生学号查询个人所在党支部基本信息
     * @author 20155887 赵开兰
     * @methodName :queryPartyByPartyMemberAccount
     * @returnType ：Party
     * @create 2018/5/17 10:39
     **/

    Party queryPartyByPartyMemberAccount(int party_member_account);

    /**
     * @param :int stu_num
     * @Description :通过学生学号查询学生ID
     * @author 20155887 赵开兰
     * @methodName :queryStuIdByStuNum
     * @returnType :int
     * @create 2018/5/24 14:18
     **/

    int queryStuIdByStuNum(int stu_num);

    /**
     * @param :int stu_num
     * @Description :通过党组织编号查询党组织ID
     * @author 20155887 赵开兰
     * @methodName :queryPartyIdByPartyNum
     * @returnType :int
     * @create 2018/5/24 14:18
     **/
    int queryPartyIdByPartyNum(int partyNum);


    /**
     * @param
     * @Description :查询所有党组织
     * @author 20155887 赵开兰
     * @methodName
     * @returnType : List<Party>
     * @create 2018/5/26 15:29
     **/

    List<Party> queryAllPartys();

    /**
     * @param :int stu_num
     * @Description :通过学生学号修改学生政治面貌信息
     * @author 20155887 赵开兰
     * @methodName :updateStudentPoli
     * @returnType :Msg
     * @create 2018/5/26 20:05
     **/

    Msg updateStudentPoli(int stu_num);

    /**
     * @param
     * @Description:老师查询所有学生的申请入党记录
     * @author 20155887 赵开兰
     * @methodName: queryAllStuApplys
     * @returnType: Message
     * @create 2018/5/26 23:28
     **/

    Message queryAllStuApplys();

    /**
     * @param :StuApply stuApply
     * @Description : 多条件动态sql查询
     * @author 20155887 赵开兰
     * @methodName :queryApplyByConditions
     * @returnType :Message
     * @create 2018/5/27 10:54
     **/

    Message queryApplyByConditions(StuApply stuApply);

    /**
     * @param
     * @Description :通过学生申请入党id查询对应的StuApply对象
     * @author 20155887 赵开兰
     * @methodName :querystuApplyBystuApplyId
     * @returnType: Message
     * @create 2018/5/27 15:21
     **/

    Message querystuApplyBystuApplyId(int stu_apply_id);

    /**
     * @param :PartyMember partyMember
     * @Description :老师点击同意入党的同时往党员表添加一条新的对应记录
     * @author 20155887 赵开兰
     * @methodName :addPartyMember
     * @returnType :Message
     * @create 2018/5/27 16:20
     **/

    Message addPartyMember(PartyMember partyMember);

    /**
     * @Description: 学生通过党员账号即学生学号查询个人党员信息
     * @author 20155887 赵开兰
     * @methodName: querypartyMemberByAccount
     * @param: int party_member_account
     * @returnType: PartyMember
     * @create 2018/5/4 22:08
     **/

    PartyMember querypartyMemberByAccount(int party_member_account);

}

